package empleadoAdministrativo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.BorderFactory;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import misc.Logica;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class CancelarPase_GUI extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JButton btnUltimoPase;
	private JButton btnCancelar;
	private JButton btnCancelarPase;
	private JLabel lblPase;
	private JLabel lblSolicitudes;
	private JTable tblPase;
	private JTable tblSolicitudes;
	private JScrollPane jScrollPane1;
	private DefaultTableModel modeloSolicitudes;
	private DefaultTableModel modeloPases;
	private Logica logica;
	Empleado_GUI padre;
	/**
	* Auto-generated main method to display this JFrame
	*/
	
	public CancelarPase_GUI(Logica logica,Empleado_GUI padre) {
		super();
		initGUI();
		this.padre=padre;
		this.logica=logica;
	}
	
	
	
	public void mostrarSolicitudes() {
		ResultSet rs = logica.consultarSolicitudesPendientes();
		logica.limpiar(this.modeloSolicitudes);
		
		try {
			while (rs.next())
			{
			   // Se crea un array que será una de las filas de la tabla. 
			   Object [] fila = new Object[3]; // Hay 2 columnas en la tabla

			   // Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
			   for (int i=0;i<3;i++)
			      fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.

			   // Se añade al modelo la fila completa.
			   modeloSolicitudes.addRow(fila); 
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
       
	}
	public void mostrarPase(int solicitud) {
		ResultSet rs = logica.consultarUltimoPase(solicitud);
		logica.limpiar(this.modeloPases);
		
		try {
			while (rs.next())
			{
			   // Se crea un array que será una de las filas de la tabla. 
			   Object [] fila = new Object[3]; // Hay 2 columnas en la tabla

			   // Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
			   for (int i=0;i<3;i++)
			      fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.

			   // Se añade al modelo la fila completa.
			   modeloPases.addRow(fila); 
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
       
	}
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Cancelar Pase");
			{
				btnUltimoPase = new JButton();
				getContentPane().add(btnUltimoPase);
				btnUltimoPase.setText("Ver último pase");
				btnUltimoPase.setBounds(47, 207, 159, 23);
				btnUltimoPase.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnUltimoPaseActionPerformed(evt);
					}
				});
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(389, 362, 107, 23);
				btnCancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnCancelarActionPerformed(evt);
					}
				});
			}
			{
				jScrollPane1 = new JScrollPane();
				getContentPane().add(jScrollPane1);
				jScrollPane1.setBounds(47, 39, 449, 150);
				{
					tblSolicitudes = new JTable();
					jScrollPane1.setViewportView(tblSolicitudes);
					modeloSolicitudes = new DefaultTableModel();
					modeloSolicitudes.addColumn("Codigo Sol.");
					modeloSolicitudes.addColumn("Interesado");
					modeloSolicitudes.addColumn("Tipo de Solicitud");
									
					tblSolicitudes.setModel(modeloSolicitudes);
				}
			}
			{
				
				tblPase = new JTable();
				getContentPane().add(tblPase);
				modeloPases = new DefaultTableModel();
				modeloPases.addColumn("Codigo Pase");
				modeloPases.addColumn("Asunto");
				modeloPases.addColumn("Area");
				
								
				tblPase.setModel(modeloPases);
				tblPase.setBounds(47, 268, 449, 16);
				tblPase.setBorder(BorderFactory.createTitledBorder(""));
			}
			{
				lblSolicitudes = new JLabel();
				getContentPane().add(lblSolicitudes);
				lblSolicitudes.setText("Solicitudes Pendientes");
				lblSolicitudes.setBounds(47, 12, 246, 16);
			}
			{
				lblPase = new JLabel();
				getContentPane().add(lblPase);
				lblPase.setText("Último Pase de solicitud");
				lblPase.setBounds(47, 241, 255, 16);
			}
			{
				btnCancelarPase = new JButton();
				getContentPane().add(btnCancelarPase);
				btnCancelarPase.setText("Cancelar Pase");
				btnCancelarPase.setBounds(358, 296, 138, 23);
				btnCancelarPase.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnCancelarPaseActionPerformed(evt);
					}
				});
			}
			pack();
			this.setSize(556, 440);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	private void btnUltimoPaseActionPerformed(ActionEvent evt) {
		Object obj = logica.getData(tblSolicitudes, tblSolicitudes.getSelectedRow(),0);
		mostrarPase(Integer.parseInt(obj.toString()));
	}
	
	private void btnCancelarPaseActionPerformed(ActionEvent evt) {
		if (tblPase.getSelectedRow()!=-1) {
			
			 int respuesta = JOptionPane.showConfirmDialog(null, "¿Confirma la cancelación?", "Cancelar pase",
                     JOptionPane.YES_NO_OPTION);
			
			 //Confirmacion afirmativa, sino volvemos a la pantalla
			 if(respuesta==JOptionPane.YES_OPTION){
			Object obj = logica.getData(tblPase, tblPase.getSelectedRow(),0);
			logica.cancelarPase(Integer.parseInt(obj.toString()));
			logica.limpiar(modeloPases);
			}
			
		}
		else
			JOptionPane.showMessageDialog(null,"Debe seleccionar el pase a cancelar", "Error", JOptionPane.ERROR_MESSAGE);
		
	}
	
	private void btnCancelarActionPerformed(ActionEvent evt) {
		this.dispose();
		padre.setVisible(true);
		logica.limpiar(modeloPases);
		logica.limpiar(modeloSolicitudes);
	}

}
